package com.hoshiicloud.as2c.minipro.param;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单提交参数
 */
@Data
public class OrderSubmitParam implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 会员用户id
     */
    @ApiModelProperty(value = "会员用户id")
    private Long userId;


    /**
     * 订单来源
     * 1（APP_ANDROID ）安卓端
     * 2（APP_IOS）  苹果端
     * 3（WEB_MOBILE）手机H5
     * 4（WEB_PC）PC端
     * 5（SMALL_ROUTINE_ANDROID） 小程序-安卓端
     * 6（SMALL_ROUTINE_IOS）小程序-苹果端
     */
    @ApiModelProperty(value = "订单来源")
    private Integer source;


    /**
     * 提交订单方式 1立即购买 0购物车购买
     */
    @ApiModelProperty(value = "提交订单方式 1立即购买 0购物车购买")
    private Integer submitType=0;


    /**
     * 单个商品-立即购买数量
     */
    @ApiModelProperty(value = "立即购买数量")
    private Long buyNum;

    /**
     * 购物车id集合
     */
    @ApiModelProperty(value = "购物车id集合,如[1,2,3]")
    private List<Long> cartIds;

    @ApiModelProperty(value = "收货人的姓名")
    private String consignee;

    @ApiModelProperty(value = "收货人的国家region")
    private Long country;

    @ApiModelProperty(value = "国家名称")
    private String countryName;

    @ApiModelProperty(value = "收货人的省份")
    private Long province;

    @ApiModelProperty(value = "省份名称")
    private String provinceName;

    @ApiModelProperty(value = "收货人的城市")
    private Long city;

    @ApiModelProperty(value = "城市名称")
    private String cityName;

    @ApiModelProperty(value = "收货人的地区")
    private Long district;

    @ApiModelProperty(value = "地区名称")
    private String districtName;

    @ApiModelProperty(value = "收货人的详细地址")
    private String address;

    @ApiModelProperty(value = "收货人的邮编")
    private String zipcode;

    @ApiModelProperty(value = "收货人的电话")
    private String telphone;

    @ApiModelProperty(value = "收货人的手机")
    private String mobile;

    @ApiModelProperty(value = "收货人的邮箱")
    private String email;

    @ApiModelProperty(value = "收货人的最佳送货时间")
    private String bestTime;

    @ApiModelProperty(value = "收货人的地址的标志性建筑")
    private String signBuilding;

    @ApiModelProperty(value = "订单附言，由用户提交订单前填写")
    private String postscript;

    /**
     * 快递订单-收货时间、配送订单-预计送达时间、自提订单-预计自提时间
     * add by yangcheng
      */
    @ApiModelProperty(value = "快递订单-收货时间、配送订单-预计送达时间、自提订单-预计自提时间")
    private LocalDateTime receivedTime;

    /**
     * 配送方式：1-快递 2-配送 3-自提
     * add by yangcheng
     */
    @ApiModelProperty(value = "配送方式：1-快递 2-配送 3-自提")
    private Integer shippingId;

    /**
     * 收货地址ID
     * add by yangcheng
     */
    @ApiModelProperty(value = "收货地址ID")
    private Long addressId;

}
